而直譯器是一行一行直接翻譯執行。
每翻譯一行程式敘述就立刻執行,然後再翻譯下一行,再執行,所以直譯器可即時翻譯、執行。
像是JavaScript、還有PHP、Ruby、Python
(圖片來源:六角學院)
(圖片來源:六角學院)
編譯是透過「編譯器」在程式執行前將高階語言編譯成機器語言。
簡單的來說編譯就是”翻譯一下程式碼”
像是C、C++、C#、Java 等….
(圖片來源:六角學院)
(圖片來源:六角學院)
(圖片來源:六角學院)
例
var value = 1;
function v1() {
}
function v2() {
var value = 2;
v1();
}
v2();
console.log(value);
A:1 (語法作用域時) JS ✅
A:2 (動態作用域時) ❎
(圖片來源:六角學院)
例 ❶
function fn1() {
console.log('小明');
}
fn1();
↑ 結果相同 都是輸出:小明 ↓
fn1();
function fn1() {
console.log('小明');
}
例 ❷
function fn1() {
console.log('小明1');
}
var fn1 = function fn1() {
console.log('小明2');
}
fn1();
↑ 結果相同 都是輸出:小明2 ↓
var fn1 = function fn1() {
console.log('小明2');
}
function fn1() {
console.log('小明1');
}
fn1();
下一篇 hoisting GO ->